home *** CD-ROM | disk | FTP | other *** search
/ Apple Developer Connection Student Program / ADC Tools Sampler CD Disk 3 1999.iso / Cool Demos, SDKs, & Tools / Demos⁄Tools⁄Offers / Alpha ƒ / Tcl / Menus / internetConfigMenu.tcl < prev    next >
Text File  |  1998-12-29  |  4KB  |  160 lines

  1. # nowrap
  2.  
  3. alpha::menu internetConfigMenu 0.1.1 "•139" global {} uninstall this-file \
  4.   help {file "Internet Config"}
  5.  
  6. proc internetConfigMenu {} {}
  7.  
  8. Menu -n $internetConfigMenu -p internetProc {
  9.     "Menu -n urls {}"
  10.     "/'<I<OpickUrl"
  11.     (-
  12.     goTo
  13.     help
  14.     (-
  15.     webBrowser
  16.     newsClient
  17.     mailClient
  18.     ftpClient
  19.     gopherClient
  20.     telnetClient
  21.     (-
  22.     finger
  23.     "/ptelnet"
  24.     (-
  25.     resolveUrl
  26.     viewHtmlFile
  27. }
  28.  
  29.  
  30. proc internetProc {menu item} {
  31.     global HOME
  32.     
  33.     if {[catch {switch $item {
  34.         pickUrl {catch {icPickUrl}}
  35.         goTo {catch {icOpen}}
  36.         help {catch {edit -r -c [file join $HOME Help "Internet Config"]}}
  37.         webBrowser {launch -f [icGetPref -t 1 {helper•http}]}
  38.         mailClient {launch -f [icGetPref -t 1 {helper•mailto}]}
  39.         ftpClient {launch -f [icGetPref -t 1 {helper•ftp}]}
  40.         gopherClient {launch -f [icGetPref -t 1 {helper•gopher}]}
  41.         telnetClient {launch -f [icGetPref -t 1 {helper•telnet}]}
  42.         newsClient {launch -f [icGetPref -t 1 {helper•news}]}
  43.         resolveUrl {catch {icURL [getSelect]}}
  44.         viewHtmlFile {catch {htmlSendWindow}}
  45.         telnet {catch telnet}
  46.         finger {catch finger}
  47.     }}]} {
  48.         alertnote "Could not get your [quote::Prettify $item] from Internet Config"
  49.         # Check if IC extension is installed.
  50.         if {![file exists "[aebuild::result 'MACS' core getd rtyp TEXT ---- "obj {form:prop, want:type(prop), seld:type(extn), from:'null'()}"]Internet Config Extension"]} {
  51.             alertnote "Despite what Internet Config says, you should reboot after using IC for the first time."
  52.             icOpen
  53.         }
  54.     }
  55. }
  56.  
  57.  
  58. proc icPickUrl {} {
  59.     global savedUrls
  60.     if {![catch {listpick -p "Pick URL:" [lsort [array names savedUrls]]} res]} {
  61.         icURL $savedUrls($res)
  62.     }
  63. }
  64.  
  65.  
  66. proc rebuildUrlMenu {} {
  67.     global urlMenu savedUrls
  68.     Menu -m -n urls -p urlProc {
  69.         "Add"
  70.         "View"
  71.         "Remove"
  72.         "(-"
  73.     }
  74.  
  75.     foreach url [lsort -ignore [array names savedUrls]] {
  76.         addMenuItem -m -l "  " urls $url
  77.     }
  78. }
  79.  
  80. rebuildUrlMenu
  81.  
  82. # http://www.cs.umd.edu/~keleher/localHome.html
  83. proc urlProc {menu item} {
  84.     global savedUrls modifiedArrVars
  85.     
  86.     if {$item == "Add"} {
  87.         if {[catch getSelect def]} {set def {}}
  88.         set res [dialog -h 105 -w 370 -b OK 10 80 70 100 -b Cancel 100 80 160 100 -t {Name:} 10 10 60 30 -t {URL:} 10 40 60 60 -e "" 60 10 360 30 -e $def 60 40 360 60 ] 
  89.         if {[lindex $res 0]} {
  90.             set nm [lindex $res 2]
  91.             set t [lindex $res 3]
  92.             if {![string length $t] || ![string length $nm]} {
  93.                 beep
  94.                 return
  95.             }
  96.             set savedUrls($nm) $t
  97.             lappend modifiedArrVars savedUrls
  98.             rebuildUrlMenu
  99.         }
  100.     } elseif {$item == "Remove"} {
  101.         set r [listpick -p "Remove which URL?" [lsort [array names savedUrls]]]
  102.         unset savedUrls($r)
  103.         removeArrDef savedUrls $r
  104.         rebuildUrlMenu
  105.     } elseif {$item == "View"} {
  106.         if {[info exists savedUrls]} {
  107.             set lines {}
  108.             foreach nm [array names savedUrls] {
  109.                 append lines [format "%-20s \"%s\"\r" $nm [set savedUrls($nm)]]
  110.             }
  111.             new -n {* Saved URLs *}
  112.             insertText $lines
  113.             shrinkWindow
  114.             setWinInfo dirty 0
  115.             setWinInfo read-only 1
  116.         }
  117.     } else {
  118.         icURL [set savedUrls($item)]
  119.     }
  120. }
  121.  
  122. if {![info exists lastFinger]} {set lastFinger ""}
  123. if {![info exists lastTelnet]} {set lastTelnet ""}
  124.  
  125. proc finger {} {
  126.     global lastFinger modifiedVars
  127.     if {[catch {app::launchBack {'PnLF'}}]} {
  128.         alertnote "You must install Peter Lewis's \"Finger\" program."
  129.         return
  130.     }
  131.     set lastFinger [prompt {Who?} $lastFinger]
  132.     lappend modifiedVars lastFinger
  133.     watchCursor
  134.     set text [AEBuild -r 'PnLF' GURL FURL ---- "“$lastFinger”"]
  135.     new -n "* $lastFinger *"
  136.     if {[regexp {“(.*)”} $text dummy text]} {
  137.         insertText $text
  138.         shrinkWindow
  139.         winReadOnly
  140.     }
  141. }
  142.  
  143. proc telnet {} {
  144.     global lastTelnet modifiedVars telnetSig
  145.     app::launchAnyOfThese [list rlfT NCSA NIFt] telnetSig "Please locate your Telnet application:"
  146.  
  147.     if {[string length $lastTelnet]} {
  148.         set choice [eval prompt {Where?} [car $lastTelnet] Old $lastTelnet ]
  149.         set lastTelnet [removeDups [concat $choice $lastTelnet]]
  150.     } else {
  151.         set choice [set lastTelnet [prompt {Where?} $lastTelnet]]
  152.     }
  153.     
  154.     lappend modifiedVars lastTelnet
  155.     watchCursor
  156.     AEBuild -r '$telnetSig' GURL GURL ---- "“telnet://$choice”"
  157.     switchTo '$telnetSig'
  158. }
  159.  
  160.